package com.example.streams;

import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

import static java.util.stream.Collectors.toList;
import static java.util.stream.IntStream.range;

public class BestStream {
    public static void main(String[] args) {
        //  获取 0-100 的随机数
        Random random = new Random();
        IntStream intStream = random.ints(0, 100);
        // IntStream是存的是int类型的stream,而Steam是一个存了Integer的stream。
        // boxed的作用就是将int类型的stream转成了Integer类型的Stream。
        List<Integer> list1 = intStream.limit(100).boxed().collect(Collectors.toList());
        list1.stream().forEach(e -> System.out.print(e + " , "));
        System.out.println();
        //  range()方法，创建一个以1为增量步长，从startInclusive(包括)到endExclusive(不包括)的有序的数字流。
        range(1,8).forEach(e -> System.out.print(e + " , "));
        System.out.println();
        //  对列表/数组中的每个元素都乘以2
        int [] ia = range(1, 10).map(i -> i * 2).toArray();
        List<Integer> list = range(1, 10).map(i -> i * 2).boxed().collect(Collectors.toList());
        List<Integer> result = range(1, 10).map(i -> i * 2).boxed().collect(toList());
        list.stream().forEach(e -> System.out.print(e + " , "));
        System.out.println();
        result.stream().forEach(e -> System.out.print(e + " , "));
    }
}
